<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class login extends CI_Controller {

    function __construct(){
        parent::__construct();
        $this->load->model('FornecedorModel');
        $this->load->model('ClienteModel');
        $this->load->model('UsuarioModel');
        $this->load->model('Log');
        $this->load->helper("auth");
    }

    public function index($pagina = "home")
    {
        if (logado()) redirect("erro/index/ja_logado");
        $this->load->helper("form");
        $this->load->library("form_validation");
        
        //constroi o link para o redirecionamento
        $CI = &get_instance();
        $link = explode("login/index/",$CI->input->server("REQUEST_URI"));

        $dados['titulo'] = "Login de Usu&aacute;rio";
        if(count($link)>1) $dados['pagina'] = $link[1];
        else $dados['pagina'] = "home";
        
        $main = array(
            "dados" => $dados,
            "link" => "login_view"
            );
        $this->load->view("template",$main);
    }

    public function logar(){
        if (logado()) redirect("erro/index/ja_logado");
        $this->load->helper("form");
        $this->load->library("form_validation");

        $dados['titulo'] = "Login de Usu&aacute;rio";
        $dados['pagina'] = $this->input->post("pagina");
        //echo $dados['pagina'];

        $main = array(
            "dados" => $dados,
            "link" => "login_view",
            );

        $this->form_validation->set_rules("email", "E-mail", "required|valid_email");
        $this->form_validation->set_rules("senha", "Senha", "required|md5");
        $this->form_validation->set_rules("tipoLogin", "tipoLogin", "required");


        if ($this->form_validation->run() == false) :
            $this->load->view('template', $main);

        else :
            if($this->input->post("tipoLogin") == "fornecedor") :
                $fornecedor = $this->FornecedorModel->getFornecedorEmail( $this->input->post("email") );

                if( $fornecedor ) :
                    if( $fornecedor->senha == $this->input->post("senha") ) :
                        if($fornecedor->autorizado == 0) show_error("Conta desativada ou ainda não ativa");
                        $fornecedor->tipo = "fornecedor";
                        $this->session->set_userdata('user', $fornecedor);
                        $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "logou");
                        redirect($this->input->post("pagina"));

                    else :
                        $dados['erro'] = "Usu&aacute;rio ou senha incorreto!";
                        $main['dados'] = $dados;
                        $this->load->view("template", $main);

                    endif;
                else :
                    $dados['erro'] = "Usu&aacute;rio ou senha incorreto!";
                    $main['dados'] = $dados;
                    $this->load->view("template", $main);

                endif;
            else:
                $cliente = $this->ClienteModel->getClienteEmail( $this->input->post("email") );

                if( $cliente ) :
                    if( $cliente->senha == $this->input->post("senha") ) :
                        if($cliente->autorizado == 0) show_error("Conta desativada ou ainda não ativa");
                        //salva o idUsuario do Cliente para ele poder efetuar compras normalmente
                        $usuario = $this->UsuarioModel->getUsuarioEmail($cliente->email);
                        $cliente->idUsuario = $usuario->idUsuario;

                        if($cliente->tipoPessoa == "fisica")
                            $cliente->tipo = "cliente_fisico";
                        else
                            $cliente->tipo = "cliente_juridico";

                        $this->session->set_userdata('user', $cliente);
                        $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "logou");
                        redirect($this->input->post("pagina"));

                    else :
                        $dados['erro'] = "Usu&aacute;rio ou senha incorreto!!";
                        $main['dados'] = $dados;
                        $this->load->view("template", $main);

                    endif;
                else :
                    $usuario = $this->UsuarioModel->getUsuarioEmail($this->input->post("email"));
                    if($usuario) :
                        if( $usuario->senha == $this->input->post("senha") ) :
                            $usuario->tipo = "usuario";
                            $this->session->set_userdata('user', $usuario);
                            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "logou");
                            redirect($this->input->post("pagina"));

                        else :
                            $dados['erro'] = "Usu&aacute;rio ou senha incorreto!";
                            $main['dados'] = $dados;
                            $this->load->view("template", $main);
                        endif;
                    else :
                        $dados['erro'] = "Usu&aacute;rio ou senha incorreto!";
                        $main['dados'] = $dados;
                        $this->load->view("template", $main);
                    endif;
                endif;

            endif;
        endif;
    }

    public function deslogar(){
        $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "deslogou");
        $this->session->sess_destroy();
        redirect("home");
    }

}